"""
Manager()共享 列表 字典，使用Manager()创建共享数据处理速度会比直接使用multiprocessing.Value或者multiprocessing.Array速度要慢
"""
import multiprocessing


def func(mydict, mylist):
    mydict["index1"] = "aaaaaa"  #子进程改变dict,主进程跟着改变
    mydict["index2"] = "bbbbbb"
    mylist.append(11)  #子进程改变List,主进程跟着改变
    mylist.append(22)
    mylist.append(33)


if __name__ == "__main__":
    with multiprocessing.Manager() as MG:  #重命名
        mydict = MG.dict()  #主进程与子进程共享这个字典
        mylist = MG.list(range(5))  #主进程与子进程共享这个List

        print('mydict 改变前：', mydict)
        print('mylist 改变前：', mylist)

        p = multiprocessing.Process(target=func, args=(mydict, mylist))
        p.start()
        p.join()
        print('mydict 改变后：', mydict)
        print('mylist 改变后：', mylist)
